package com.azier.influxdb.model;

import com.azier.influxdb.annotation.MyColumn;
import lombok.Getter;
import lombok.Setter;
import org.influxdb.annotation.Column;

import java.time.Instant;
import java.util.Date;
@Setter
@Getter
public class BaseModel {
    /**
     * time 该字段和对应的get，set方法，以及getDate()都是固定格式，
     * 该字段用于设定influxDB的时间坐标，如果不传值，则默认使用当前时间
     * 注：由于Instant类的时区问题，所以需要getDate获取符合当前时区的值
     */
    @Column(name = "time")
    private Instant time;

    @MyColumn(name = "count_value")
    private Double countValue;

    @MyColumn(name = "max")
    private Double max;

    @MyColumn(name = "min")
    private Double min;


    public Instant getTime() {
        return time;
    }

    public void setTime(Instant time) {
        this.time = time;
    }

    /**
     * 获取当前时区的时间
     * @return
     */
    public Date getDate() {
        Date date = new Date(time.toEpochMilli());
        return date;
    }
    /**
     * 以当前的时间设置Instant时间
     * @return
     */
    public void setDate(Date date) {
        Instant instant = Instant.ofEpochMilli(date.getTime());
        this.time = instant;
    }
}
